package com.zhangxu.microservice.auth.dao.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhangxu.microservice.auth.dao.condition.ResourceCondition;
import com.zhangxu.microservice.auth.dao.entity.ResourceDO;

import java.util.List;

/**
 * 资源DAO接口
 */
public interface ResourceDao extends IService<ResourceDO> {

    /**
     * 根据资源编码查询资源
     *
     * @param code 资源编码
     * @param systemId 系统ID
     * @return 资源信息
     */
    ResourceDO getByCode(String code, Long systemId);

    /**
     * 根据系统ID查询资源列表
     *
     * @param systemId 系统ID
     * @return 资源列表
     */
    List<ResourceDO> getBySystemId(Long systemId);

    /**
     * 根据父ID查询子资源列表
     *
     * @param parentId 父资源ID
     * @return 子资源列表
     */
    List<ResourceDO> getByParentId(Long parentId);

    /**
     * 分页查询资源
     *
     * @param condition 查询条件
     * @return 资源信息分页结果
     */
    IPage<ResourceDO> page(ResourceCondition condition);
}